pub fn convert_base(num_str: &str, to_base: u32) -> String {
    // 解析输入格式 "数字(进制)"
    let parts: Vec<&str> = num_str.trim_end_matches(')').split('(').collect();
    if parts.len() != 2 {
        panic!("Invalid input format. Expected format: number(base)");
    }
    
    // 获取数字字符串和源进制
    let num = parts[0];
    let from_base = parts[1].parse::<u32>().unwrap();
    
    // 将输入数字从源进制转换为10进制
    let decimal = u32::from_str_radix(num, from_base).unwrap();
    
    // 如果数字为0，直接返回"0"
    if decimal == 0 {
        return "0".to_string();
    }
    
    // 将10进制数转换为目标进制
    let mut digits = Vec::new();
    let mut n = decimal;
    
    while n > 0 {
        let digit = n % to_base;
        let digit_char = if digit < 10 {
            (digit as u8 + b'0') as char
        } else {
            ((digit - 10) as u8 + b'a') as char
        };
        digits.push(digit_char);
        n /= to_base;
    }
    
    // 反转数字序列并转换为字符串
    digits.reverse();
    digits.into_iter().collect()
}